# Copyright (c) 2025 Huawei Technologies Co. Ltd.
# deepinsight is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#          http://license.coscl.org.cn/MulanPSL2
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
DEFAULT_REPORT_PLAN_SYSTEM = """
我需要你帮助我把以下长篇写作指令分解为多个子任务。每个子任务将指导文章中一个章节的写作，并应包括该章节的详细主题和字数要求，核心段落要求不少于3000字。最多不要超过3个子任务。
我会提供原始材料搜集计划以及搜集到的原始材料，最终报告的内容应该完全来自于原始材料，所以分解写作子任务的时候不要出现原始材料中的信息无法完成的子任务。

请注意一定要严格按照以下格式分解。大章节之间使用一个空行分隔；章节内不允许存在空行，换行用Markdown的两个空格和一个换行符。每个章节的**章节结构**使用块引用输出，章节名为二级标题，最深到三级子标题，且最多三个三级标题：
<result>
**章节一**  
-**主要内容**：[详细描述段落的主题]  
-**字数要求**：[例如3000字]  
-**章节结构**：[此章节的目录结构，最多生成两层标题，第一层为章节标题，第二层最多3个子标题，例如：  
&emsp;&emsp;**1. <章节一标题>**  
&emsp;&emsp;**1.1 <三级子标题1>**  
&emsp;&emsp;**1.2 <三级子标题2>**  
&emsp;&emsp;**1.3 <三级子标题3>**  ]

**章节二**  
-**主要内容**：[详细描述段落的主题]  
-**字数要求**：[例如3000字]  
-**章节结构**：[此章节的目录结构，最多生成两层标题，第一层为章节标题，第二层最多3个子标题，例如：  
&emsp;&emsp;**2. <章节二标题>**  
&emsp;&emsp;**2.1 <三级子标题1>**  
&emsp;&emsp;**2.2 <三级子标题2>**  
&emsp;&emsp;**2.3 <三级子标题3>**  ]

</result>

确保每个子任务清晰具体，且子任务之间界限明显，所有子任务涵盖写作指令的全部内容。不要将子任务拆分的过于零碎：每个子任务描述不少于200字，确保内容完整。"""

DEFAULT_REPORT_PLAN_USER = """
<写作指令>
{query}
</写作指令>

<搜集计划>
{search_plan}
</搜集计划>

<原始材料>
{search_info}
</原始材料>
"""
DEFAULT_REPORT_WRITE_SYSTEM = """
我会给你一个原始的完整报告写作指令、当前章节的写作要求以及搜集到的原始材料。请根据写作指令、章节要求和原始材料，帮助我完成这一章节的写作任务。

<引用规则>
- 【重要】只能使用原始材料中明确提供的、包含完整URL的信息源
- 【重要】在提供任何引用来源时：
    1. 必须严格基于提供的[原始材料]内容。
    2. 如果提供的[原始材料]中没有包含特定信息（数据、事件、报告等）的有效来源或链接，则绝对禁止自行编造引用！
    3. 当无法提供基于[原始材料]的真实引用时，请如实说明“根据用户提供的当前搜索结果，未找到关于[X]的具体公开来源链接”，或简单陈述信息而不带引用。
- 【重要】当提到具体事件、数据、观点时：
    1. 如果在[搜索结果]中直接有链接：请提供该原始链接（确保URL完整复制，不修改）。
    2. 如果信息在[搜索结果]中有提及但未给出链接：请写“根据[搜索结果描述，如’据新浪体育报道’]”，不可自行添加链接！
    3. 如果信息在[搜索结果]中完全缺失：请直接省略该信息点或标注“此点信息在提供的搜索结果中未找到”。
- 【禁止行为】绝对禁止发生以下行为：
    1. 编造网站（如 example.com, test.com 等示例域名或其子页面）。
    2. 在真实网站(如 weibo.com, openai.com)后添加自行推断的、未被提供的URL路径。
    3. 为真实网站编造不存在的页面路径或标题
    3. 杜撰报告名称、数据来源机构或网页标题，编造、推测或创建任何引用，包括URL、标题或作者信息
    4. 对模糊信息进行确定性引用。
</引用规则>

<写作方法>
- 使用具体细节而非笼统陈述
- 保持专业、实事求是的语气，所有信息必须来自于原始材料
- 直接返回报告内容即可，不用使用markdown的```markdown```包裹
- 字斟句酌
- 专注于最重要的一点
- 必须涵盖章节要求所有方面，需呈现多元视角，应包含主流与非主流观点
- 章节内容必须足够有深度，表层信息不可接受，需要详细数据点、事实和统计数据，必须进行多源深度分析
- 请勿撰写引言或者结论，除非它们明确属于您的章节的一部分
- 尽量增加每一小章节的内容，而不是通过增加小章节数增加字数，不仅仅说明现状，也要说明这种做法原因与目的，尽可能的详细
- 观看这篇报告的人可能不是专业人士，因此对于技术名词，您需要给出解释，且当技术解释比较复杂时，触发类比说明
- 章节中的标题严格按照<章节要求>中的章节结构定义，标题需要包含数字序号
- 严格确保章节内容符合MarkDown语法规范，适当使用表格MarkDown语法更加清晰的表达对比类场景
- 可以从提供的原始材料里面找出高质量的与主题强相关的图片放入报告里面的合适位置，提高报告内容丰富度和可读性，但是注意一定不能自行编造信息
- 来自知识库的内容不用加在引用里面
- 没有url的数据不需要标记引用，也不用加参考内容，如果引用了有url数据来源的数据（数据里面明确有 url: xxx 字段，不要自己编造），请遵循如下引用标记方法：
    1. 重要：图片链接不要作为任何引用来源
    2. 只有当原始材料中明确包含"url: xxx"字段时才能添加引用；如果原始材料为空或不包含URL，则不添加任何引用标记。
    不要自己编造url，可以使用以下表述方式：
      * "根据公开信息"
      * "据了解"
      * "相关资料显示"
      * "公开报道表明"
    3. 为每个引用分配唯一编号
    4. 章节末尾列出所有参考文献
    5. 重要：最终列表中的编号必须连续无间隔（1,2,3,4...）
    6. 本章节正文引用格式如下：
        [<section_id>_1] 
        [<section_id>_2]
        ...
    7. 章节末总体引用格式如下：
        [citation]
        ## 参考内容
        [<section_id>_1] [文献标题或者简略内容概括](URL)
        [<section_id>_2] [文献标题或者简略内容概括](URL)
        [citation/]
</写作方法>

<最终结果样式>
## 1. 章节标题
    [概述]（可选）
### 1.1 章节子标题1
    ...
    ![图片描述](URL)
    *图示：图片描述*
    ...
### 1.2 章节子标题2
    ...

    | 对比维度 | 参数A | 参数B | 分析结论 |
    |----------|-------|-------|----------|
    | ...      | ...   | ...   | ...      |
    ...
### 1.3 章节子标题3
    ...
[章节间过度内容]（可选）
</最终结果样式>
"""

DEFAULT_REPORT_WRITE_USER = """
<写作指令>
{query}
</写作指令>

<章节id>
{write_task_id}
</章节id>

<章节要求>
{write_instruction}
</章节要求>

<原始材料>
{search_info}
</原始材料>
"""
